#ifndef GAMEROOM_H
#define GAMEROOM_H
#include <QWidget>
#include <QSound>
#include<QKeyEvent>
//枚举蛇的移动方向
enum class kSnakeDirect
{
    UP = 0,
    DOWN,
    LEFT,
    RIGHT
};

class GameRoom : public QWidget
{
    Q_OBJECT
public:
    explicit GameRoom(QWidget *parent = nullptr);
    //重写绘画事件
    void paintEvent(QPaintEvent *event);
    //按键事件
    void keyPressEvent(QKeyEvent * event);
    void moveUp();//蛇向上移动
    void moveDown();//蛇向下移动
    void moveLeft();//蛇向左移动
    void moveRight();//蛇向右移动
    bool checkFail();//检查失败
    void creatNewFood();//随机产生食物
    void setTimer(int timer){moveDefount=timer;};//设置模式的时间

private:
    //表示蛇身体结点的宽度
    const int kSnakeNodeWidth = 20;
    //表示蛇身体节点的高度
    const int kSnakeNodeHeight = 20;
    //表示蛇的速度
    const int kDefountTimeout = 100;
    //表示贪吃蛇的链表
    QList<QRectF> snakeList;
    //表示食物的结点
    QRectF foodRect;
    //表示蛇初始方向的默认值
    kSnakeDirect moveDirect = kSnakeDirect::UP;
    //设置一个定时器
    QTimer *timer;
    //设置一个音效
    QSound *sound;
    //表示是否开始游戏
    bool isGameStart =false;
    //蛇的游戏速度
    int moveDefount=kDefountTimeout;
};

#endif // GAMEROOM_H
